package io.renren.modules.pet.service;

import io.renren.common.page.PageData;
import io.renren.common.service.CrudService;
import io.renren.modules.pet.vo.PetLostVO;
import io.renren.modules.pet.dto.PetLostDTO;
import io.renren.modules.pet.entity.PetLostEntity;
import io.renren.modules.pet.vo.PetTypeChartPieVO;

import java.util.List;
import java.util.Map;

/**
 * 丢失宠物信息表
 *
 * @author zwp zwp
 * @since 1.0.0 2025-03-13
 */
public interface PetLostService extends CrudService<PetLostEntity, PetLostVO> {
    
    /**
     * 保存
     * @param petLostDTO
     */
    void save(PetLostDTO petLostDTO);
    
    /**
     * 修改
     * @param petLostDTO
     */
    void update(PetLostDTO petLostDTO);

    /**
     * 集合
     * @param params
     * @return
     */
    List<PetLostVO> petLostList(Map<String, Object> params);

    /**
     * 信息
     * @param id
     * @return
     */
    PetLostVO getInfoById(Long id);

    /**
     * 用户送养集合
     * @param params
     * @return
     */
    List<PetLostVO> listDetailByUser(Map<String, Object> params);

    /**
     * 获取用户寻宠收藏
     * @param params
     * @return
     */
    List<PetLostVO> getPetLostCollectByUser(Map<String, Object> params);

    /**
     * 分页
     * @param params
     * @return
     */
    PageData<PetLostVO> petLostPage(Map<String, Object> params);

    /**
     * 下架相关人的寻宠信息
     * @param reportedUserId
     * @param status
     */
    void examineByUserId(Long reportedUserId, Integer status);

    /**
     * 撤销寻宠
     * @param id
     */
    void delLostPetsById(Long id);

    /**
     * 寻主比例分布
     * @param params
     * @return
     */
    List<PetTypeChartPieVO> getFindLoaderChartPie(Map<String, Object> params);

    /**
     * 寻宠比例分布
     * @param params
     * @return
     */
    List<PetTypeChartPieVO> getFindPetChartPie(Map<String, Object> params);
}